<?php
/**
 * Created by PhpStorm.
 * User: ljc
 * Date: 2018/7/20
 * Time: 11:20
 */

namespace Modules\Admin\Service;


use Modules\Admin\Entities\Module;

class ModuleService
{
	public function updateModule(){
		//请空模块信息，重新获得模块信息，并添加进数据表，清空之前先获取已经为默认模块的
		$default=Module::where('isdefault','=','1')->first();
		\DB::table('modules')->truncate ();
		//获得当前所有模块
		$modules=\HDModule::getModulesLists();
		//定义空数组用来接收重组后的$module
		$m=[];
		foreach($modules as $module){
			$module['isdefault']=$this->isDefaultModule ($module,$default);
			$module['home_access']=$this->home_access($module);
			//将重组后的数组压入空数组中
			$m[]=$module;
		}
		return $m;
	}
	//获取默认模块
	public function isDefaultModule($module,$default=null){
		//如果默认模块不存在，则设置shop为默认模块
		if(!$default){
			return $module['name']=='Shop'?1:0;
		}else{
			return $default['name']==$module['name']?1:0;
		}
	}
	//判断模块里面是否有homeController控制器和index方法
	public function home_access($module){
		$class='Modules\\'.$module['name'].'\Http\Controllers\HomeController';
		return class_exists ($class)&&method_exists ($class,'index');
	}
}